数据操作DML这里的数据操作就是增删改的更新操作,不包括查询
插入12insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入对应列insert into 表 values (值1,值2,值3...); //向表中插入所有列
第一种是需要按照列名对应写数值的,可以省略,但必须对应
第二种是一次插入一行,是都要写的
也可以插入多行只需在之后填入新的行即可
1234insert into student(sid,name,gender,age,birth,address,score) values(1001,'男',18,'1996-12-23','北京',83.5), (1001,'男',18,'1996-12-23','北京',83.5);insert into student values(1001,'男',18,...
原题链接788. 逆序对的数量
题目难度:简单
题目描述给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。
逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。
输入格式第一行包含整数 n,表示数列的长度。
第二行包含 n 个整数,表示整个数列。
输出格式输出一个整数,表示逆序对的个数。
数据范围$1 \le n \le 100000$,数列中的元素的取值范围 $[1,10^9]$。
输入样例:1262 3 4 5 6 1
输出样例:15
题目分析逆序对首先数对,他是一个线性代数中的概念,简单的理解就是,前面的数字比后面的数字大就是一个逆序对,需要注意的是,如果两个数字相同,则应该标记为不同的数字,只是数值相同
我们主要的思想还是采用分治,可以借用归并排序的思路,在归并排序的过程中计算出这个问题的答案
对于分治来说,如何不重不漏的将情况分出来是最重要的
假设这是某一次分治的结果,分为[L,Mid]和[Mid+1,R]两个区间,红绿蓝表示可能出现的逆序对的位置
这一次...
MySQL数据库基本操作首先我们先了解SQL的语言组成,他分为四个部分
数据定义语言(DDL)
数据操纵语言(DML)
数据控制语言(DCL)
数据查询语言(DQL)
数据定义DDL他主要包含三部分内容,对于数据库的常用操作,其次是对表结构的常用操作,
那说白了就是对数据库和表本身的修改,增加删除表,行和列等内容,不涉及数据本身
对数据库的常用操作
功能
SQL
查看所有数据库
show databases;
创建数据库
create database [if not exists] mydb1 [charset=utf8]
切换数据库
use mydb1;
删除数据库
drop database [if exists] mydb1;
修改数据库编码
alter database mydb1 character set utf8;
如果没有图形化界面,我们是需要使用第一个代码查看所有数据库
中括号内的文字表示可选项,可以写也可以不写,写的时候不需要带中括号,这里就用mydb1作为样例的名称,第一个可选项是因为存在时创建会报错
创建表语法...
原题链接1231. 航班时间
题目难度:简单
题目来源:第九届蓝桥杯省赛C++ A组,第九届蓝桥杯省赛Java A组
题目描述小 h 前往美国参加了蓝桥杯国际赛。
小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。
小 h 对超音速飞行感到十分恐惧。
仔细观察后发现飞机的起降时间都是当地时间。
由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。
不久后小 h 的女朋友去中东交换。
小 h 并不知道中东与北京的时差。
但是小 h 得到了女朋友来回航班的起降时间。
小 h 想知道女朋友的航班飞行时间是多少。
对于一个可能跨时区的航班,给定来回程的起降时间。
假设飞机来回飞行时间相同,求飞机的飞行时间。
输入格式一个输入包含多组数据。
输入第一行为一个正整数 T,表示输入数据组数。
每组数据包含两行,第一行为去程的起降时间,第二行为回程的起降时间。
起降时间的格式如下:
h1:m1:s1 h2:m2:s2
h1:m1:s1 h3:m3:s3 (+1)
h1:m1:s1 h4:m4:s4 (+2)...
原题链接1219. 移动距离
题目难度:简单
题目来源:第六届蓝桥杯省赛C++ B组,第六届蓝桥杯省赛Java A/C组
题目描述X星球居民小区的楼房全是一样的,并且按矩阵样式排列。
其楼房的编号为 1,2,3…
当排满一行时,从下一行相邻的楼往反方向排号。
比如:当小区排号宽度为 6 时,开始情形如下:
1231 2 3 4 5 612 11 10 9 8 713 14 15 .....
我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。
输入格式输入共一行,包含三个整数 w,m,n,w 为排号宽度,m,n 为待计算的楼号。
输出格式输出一个整数,表示 m, n 两楼间最短移动距离。
数据范围1≤w,m,n≤10000
输入样例:16 8 2
输出样例:14
题目分析这道题目的意思非常简单,重在如何进行模拟,或者通过找规律也能做出来
这道题目要求的距离实际上在数学中叫做曼哈顿距离,给定两个点的坐标可以用公式表示为$|x_1-x_2|+|y_1-y_2|$
那么其实问题就变成了如何求这两个编号的坐标了...
原题链接1229. 日期问题
题目难度:简单
题目来源:第八届蓝桥杯省赛C++ B组,第八届蓝桥杯省赛Java B/C组
题目描述小明正在整理一批历史文献。这些历史文献中出现了很多日期。
小明知道这些日期都在1960年1月1日至2059年12月31日。
令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。
更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。
比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。
给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?
输入格式一个日期,格式是”AA/BB/CC”。
即每个’/’隔开的部分由两个 0-9 之间的数字(不一定相同)组成。
输出格式输出若干个不相同的日期,每个日期一行,格式是”yyyy-MM-dd”。
多个日期按从早到晚排列。
数据范围$0 \le A,B...
SQL简介SQL首先是一门高级语言,同其他的C/C++,Java等语言类似,不同的是他是一种结构化查询语言,用户访问和处理数据库的语言,那类似于C语言,SQL也有自己的标准,目前市面上的数据库系统都支持SQL-92标准
SQL这门语言是具有统一性的,但是不同的数据库支持的SQL有略微差别,他是一门非过程化语言,不像C语言,用户并不关心操作是如何完成的,SQL也是跟其他语言结合有相当广泛的应用的,例如Java,Python
首先SQL对大小写不敏感,其次灵活度非常高,一条语句只以分号结尾,可以任意换行
数据库系统简介数据库(DataBases,DB)其实就是以某种组织方式存储数据的集合,这里的组织方式有很多,例如有使用表(table)的
数据库的应用非常广泛,小到网站,大到各类应用系统,都是基于数据库的
我们对数据库基本分为两类,一类叫做关系型数据库(RDBMS)
名称
简介
Oracle
行业巨头
MySQL
最流行的中大型数据库
SQL server
Windows上最好用的数据库
PostgreSQL
功能最强大的开源数据库
SQLite...
原题链接787. 归并排序
题目难度:简单
题目描述给定你一个长度为 n 的整数数列。
请你使用归并排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
输入格式输入共两行,第一行包含整数 n。
第二行包含 n 个整数(所有整数均在 $1 \sim 10^9$ 范围内),表示整个数列。
输出格式输出共一行,包含 n 个整数,表示排好序的数列。
数据范围$1 \le n \le 100000$
输入样例:1253 1 2 4 5
输出样例:11 2 3 4 5
题目分析归并排序是一种非常重要的分治思想,而且代码不是很复杂,是很有可能在做题时被要求手搓归并的
归并排序的整体思想是先递归拆分,再排序,最后合并
拆分是按照位置拆分的,一般都是按照中间位置拆分
这里的难点在于如何合并
我们用双指针,分别指向两个排好序的数组,然后总是选择较小的数存入到新数组中
示例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555...